package com.example.logaspect.service;

import com.example.logaspect.annotation.LogRecord.LogLevel;

/**
 * 日志记录服务接口
 * @author Senhai Xu
 */
public interface LogRecordService {

    /**
     * 记录方法开始执行
     */
    void recordMethodStart(String methodSignature, String description, Object[] args, LogLevel level);

    /**
     * 记录方法执行完成
     */
    void recordMethodEnd(String methodSignature, String description, Object[] args,
                         Object result, long executionTime, LogLevel level);

    /**
     * 记录方法执行异常
     */
    void recordMethodException(String methodSignature, String description, Object[] args,
                               Throwable throwable, long executionTime, LogLevel level);
}